package com.feifan.oa.domain;

import com.feifan.common.annotation.Excel;
import com.feifan.common.core.domain.BaseEntity;
import com.feifan.system.domain.SysUser;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 请假审批对象 tb_leave_check
 * @author 非凡
 * @date 2020-07-04
 */
public class LeaveCheck extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private Long id;

    /**
     * 审批id
     */
    private Leave leave;

    /**
     * 流程名称
     */
    @Excel(name = "流程名称")
    private FlowCategoryInfo flowCategoryInfo;

    /**
     * 审批人
     */
    private SysUser checkSysUser;

    /**
     * 下一个审批人
     */
    private SysUser nextSysUser;

    /**
     * 审批人角色
     */
    private String roleName;

    /**
     * 审批状态
     */
    private Integer status;

    /**
     * 是否可见
     */
    private Integer isShow;

    /**
     * 驳回原因
     */
    private String rejectReason;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createDate;

    /**
     * 审批时间
     */
    private Date checkDate;

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Leave getLeave() {
        return leave;
    }

    public void setLeave(Leave leave) {
        this.leave = leave;
    }

    public String getRejectReason() {
        return rejectReason;
    }

    public void setRejectReason(String rejectReason) {
        this.rejectReason = rejectReason;
    }

    public FlowCategoryInfo getFlowCategoryInfo() {
        return flowCategoryInfo;
    }

    public void setFlowCategoryInfo(FlowCategoryInfo flowCategoryInfo) {
        this.flowCategoryInfo = flowCategoryInfo;
    }

    public String getRoleName() {
        return roleName;
    }

    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public SysUser getNextSysUser() {
        return nextSysUser;
    }

    public void setNextSysUser(SysUser nextSysUser) {
        this.nextSysUser = nextSysUser;
    }

    public Integer getIsShow() {
        return isShow;
    }

    public void setIsShow(Integer isShow) {
        this.isShow = isShow;
    }

    public SysUser getCheckSysUser() {
        return checkSysUser;
    }

    public void setCheckSysUser(SysUser checkSysUser) {
        this.checkSysUser = checkSysUser;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Date getCheckDate() {
        return checkDate;
    }

    public void setCheckDate(Date checkDate) {
        this.checkDate = checkDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("leave", getLeave())
                .append("flowCategoryInfo", getFlowCategoryInfo())
                .append("nextSysUser", getNextSysUser())
                .append("checkSysUser", getCheckSysUser())
                .append("status", getStatus())
                .append("isShow", getIsShow())
                .append("rejectReason", getRejectReason())
                .append("createDate", getCreateDate())
                .append("checkDate", getCheckDate())
                .append("roleName", getRoleName())
                .toString();
    }
}
